home *** CD-ROM | disk | FTP | other *** search
/ Ham Radio 2000 / Ham Radio 2000.iso / ham2000 / antenna / nec / eam_demo / eam_demo.ms_ / eam_demo.bin
Text File  |  1994-03-13  |  7KB  |  256 lines

  1. '**************************************************************************
  2. '*                       MSSetup Toolkit EAM-DEMO
  3. '**************************************************************************
  4.  
  5. '$DEFINE DEBUG  ''Define for script development/debugging
  6.  
  7. '$INCLUDE 'setupapi.inc'
  8. '$INCLUDE 'msdetect.inc'
  9.  
  10. ''Dialog ID's
  11. CONST WELCOME       = 100
  12. CONST UNZIP         = 2000
  13. CONST ASKQUIT       = 200
  14. CONST DESTPATH      = 300
  15. CONST EXITFAILURE   = 400
  16. CONST EXITQUIT      = 600
  17. CONST EXITSUCCESS   = 700
  18. CONST OPTIONS       = 800
  19. CONST APPHELP       = 900
  20. CONST BADPATH       = 6400
  21. CONST TOOBIG        = 6300
  22.  
  23. ''Bitmap ID
  24. CONST LOGO = 1
  25.  
  26. GLOBAL DEST$        ''Default destination directory.
  27. GLOBAL PROG$
  28. GLOBAL CUIDLL$ 
  29. GLOBAL LEFTOVER& 
  30.  
  31. DECLARE SUB Install
  32. DECLARE FUNCTION MakePath (szDir$, szFile$) AS STRING
  33. DECLARE FUNCTION MakeDrive(szDir$) AS STRING
  34. DECLARE SUB RecalcPath
  35.  
  36.  
  37. INIT:
  38.     CUIDLL$ = "eam_demo.dll"            ''Custom user interface dll
  39.     HELPPROC$ = "FHelpDlgProc"          ''Help dialog procedure
  40.  
  41.     SetBitmap CUIDLL$, LOGO
  42.     SetTitle "Electromagnetic Antenna Modeling System Demo Installation"
  43.  
  44.     szInf$ = GetSymbolValue("STF_SRCINFPATH")
  45.     IF szInf$ = "" THEN
  46.         szInf$ = GetSymbolValue("STF_CWDDIR") + "EAM_DEMO.INF"
  47.     END IF
  48.     ReadInfFile szInf$
  49.  
  50.     OPTCUR$ = "1"
  51.  
  52. '$IFDEF DEBUG
  53.     i% = SetSizeCheckMode(scmOnIgnore)    '' could use scmOff; def = scmOnFatal
  54.     WinDrive$ = MID$(GetWindowsDir, 1, 1)
  55.     IF IsDriveValid(WinDrive$) = 0 THEN
  56.         i% = DoMsgBox("Windows drive ('"+WinDrive$+"') is not a valid drive.", "DEBUG", MB_TASKMODAL+MB_ICONHAND+MB_OK)
  57.         GOTO QUIT
  58.     END IF
  59. '$ENDIF ''DEBUG
  60.  
  61.  
  62. WELCOME:
  63.     sz$ = UIStartDlg(CUIDLL$, WELCOME, "FInfoDlgProc", APPHELP, HELPPROC$)
  64.     IF sz$ = "CONTINUE" THEN
  65.         UIPop 1
  66.     ELSE
  67.         GOSUB ASKQUIT
  68.         GOTO WELCOME
  69.     END IF
  70.  
  71.  
  72.     DEST$ = "C:\EAM_DEMO\"
  73.  
  74. GETPATH:
  75.     SetSymbolValue "EditTextIn", DEST$
  76.     SetSymbolValue "EditFocus", "END"
  77. GETPATHL1:
  78.     sz$ = UIStartDlg(CUIDLL$, DESTPATH, "FEditDlgProc", APPHELP, HELPPROC$)
  79.     DEST$ = GetSymbolValue("EditTextOut")
  80.  
  81.     IF sz$ = "CONTINUE" THEN
  82.         IF IsDirWritable(DEST$) = 0 THEN
  83.             GOSUB BADPATH
  84.             GOTO GETPATHL1
  85.     ELSE
  86.             RecalcPath
  87.         IF LEFTOVER& < 0 THEN
  88.                GOSUB TOOBIG
  89.                GOTO GETPATHL1
  90.         END IF
  91.         END IF
  92.         UIPop 1
  93.     ELSEIF sz$ = "REACTIVATE" THEN
  94.         GOTO GETPATHL1
  95.     ELSEIF sz$ = "BACK" THEN
  96.         UIPop 1
  97.         GOTO WELCOME
  98.     ELSE
  99.         GOSUB ASKQUIT
  100.         GOTO GETPATH
  101.     END IF
  102.  
  103.     Install
  104.  
  105.  
  106. QUIT:
  107.     ON ERROR GOTO ERRQUIT
  108.  
  109.     IF ERR = 0 THEN
  110.         dlg% = EXITSUCCESS
  111.     ELSEIF ERR = STFQUIT THEN
  112.         dlg% = EXITQUIT
  113.     ELSE
  114.         dlg% = EXITFAILURE
  115.     END IF
  116.  
  117. QUITL1:
  118.     sz$ = UIStartDlg(CUIDLL$, dlg%, "FInfo0DlgProc", 0, "")
  119.     IF sz$ = "REACTIVATE" THEN
  120.         GOTO QUITL1
  121.     END IF
  122.     UIPop 1
  123.  
  124.     END
  125.  
  126. ERRQUIT:
  127.     i% = DoMsgBox("Setup sources were corrupted", "Setup Message", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  128.     END
  129.  
  130.  
  131.  
  132. BADPATH:
  133.     sz$ = UIStartDlg(CUIDLL$, BADPATH, "FInfo0DlgProc", 0, "")
  134.     IF sz$ = "REACTIVATE" THEN
  135.         GOTO BADPATH
  136.     END IF
  137.     UIPop 1
  138.     RETURN
  139.  
  140.  
  141.  
  142. ASKQUIT:
  143.     sz$ = UIStartDlg(CUIDLL$, ASKQUIT, "FQuitDlgProc", 0, "")
  144.  
  145.     IF sz$ = "EXIT" THEN
  146.         UIPopAll
  147.         ERROR STFQUIT
  148.     ELSEIF sz$ = "REACTIVATE" THEN
  149.         GOTO ASKQUIT
  150.     ELSE
  151.         UIPop 1
  152.     END IF
  153.     RETURN
  154.  
  155. TOOBIG:
  156.     sz$ = UIStartDlg(CUIDLL$, TOOBIG, "FInfo0DlgProc", 0, "")
  157.     UIPop 1
  158.     RETURN
  159.  
  160.  
  161. '**
  162. '** Purpose:
  163. '**     Builds the copy list and performs all installation operations.
  164. '** Arguments:
  165. '**     none.
  166. '** Returns:
  167. '**     none.
  168. '*************************************************************************
  169. SUB Install STATIC
  170.  
  171.     SrcDir$ = GetSymbolValue("STF_SRCDIR")
  172.     AddSectionFilesToCopyList "Files", SrcDir$, DEST$ 
  173.     AddSectionFilesToCopyList "quicklook", SrcDir$, MakePath(DEST$,"") + "EAMQL\"
  174.     AddSectionFilesToCopyList "qlgraphics", SrcDir$, MakePath(DEST$,"") + "EAMQL\GRAPHICS"
  175.     AddSectionFilesToCopyList "eamnec",   SrcDir$, MakePath(DEST$,"")  + "EAMNEC\"
  176.     AddSectionFilesToCopyList "datanec",   SrcDir$, MakePath(DEST$,"")  + "EAMNEC\NEC\NECDATA"
  177.     AddSectionFilesToCopyList "eambsc",   SrcDir$, MakePath(DEST$,"")  + "EAMBSC\"
  178.     AddSectionFilesToCopyList "databsc",   SrcDir$, MakePath(DEST$,"")  + "EAMBSC\BSC\BSCDATA"
  179.     CopyFilesInCopyList
  180.  
  181.  
  182.     CreateProgmanGroup "EAM", "", cmoNone
  183.     ShowProgmanGroup  "EAM", 1, cmoNone
  184.  
  185.     PROG$ = MakePath(DEST$,"EAMQL\EAMQL.exe") + ",0,1,1"
  186.     CreateProgmanItem "EAM", "EAM-QuickLook", MakePath(DEST$,"EAMQL\EAMQL.exe"), PROG$, cmoOverwrite
  187.     PROG$ = MakePath(DEST$,"EAMNEC\EAMNEC.exe") + ",1,1,1"
  188.     CreateProgmanItem "EAM", "EAM-NEC", MakePath(DEST$,"EAMNEC\EAMNEC.exe"), PROG$, cmoOverwrite
  189.     PROG$ = MakePath(DEST$,"EAMBSC\EAMBSC.exe") + ",0,1,1"
  190.     CreateProgmanItem "EAM", "EAM-BSC", MakePath(DEST$,"EAMBSC\EAMBSC.exe"), PROG$, cmoOverwrite
  191.     PROG$ = MakePath(DEST$,"README.wri") + ",0,1,1"
  192.     CreateProgmanItem "EAM", "README", MakePath(DEST$,"README.wri"), PROG$, cmoOverwrite
  193.  
  194. END SUB
  195.  
  196.  
  197.  
  198. '**
  199. '** Purpose:
  200. '**     Appends a file name to the end of a directory path,
  201. '**     inserting a backslash character as needed.
  202. '** Arguments:
  203. '**     szDir$  - full directory path (with optional ending "\")
  204. '**     szFile$ - filename to append to directory
  205. '** Returns:
  206. '**     Resulting fully qualified path name.
  207. '*************************************************************************
  208. FUNCTION MakePath (szDir$, szFile$) STATIC AS STRING
  209.     IF szDir$ = "" THEN
  210.         MakePath = szFile$
  211.     ELSEIF szFile$ = "" THEN
  212.         IF MID$(szDir$, LEN(szDir$), 1) = "\" THEN
  213.            MakePath = szDir$           
  214.     ELSE 
  215.            MakePath = szDir$ + "\"
  216.     END IF
  217.     ELSEIF MID$(szDir$, LEN(szDir$), 1) = "\" THEN
  218.         MakePath = szDir$ + szFile$
  219.     ELSE
  220.         MakePath = szDir$ + "\" + szFile$
  221.     END IF
  222. END FUNCTION
  223.  
  224.  
  225. '**
  226. '** Purpose:
  227. '**     Appends a file name to the end of a directory path,
  228. '**     inserting a backslash character as needed.
  229. '** Arguments:
  230. '**     szDir$  - full directory path (with optional ending "\")
  231. '**     szFile$ - filename to append to directory
  232. '** Returns:
  233. '**     Resulting fully qualified path name.
  234. '*************************************************************************
  235. FUNCTION MakeDrive(szDir$) STATIC AS STRING
  236.     IF szDir$ = "" THEN
  237.         MakeDrive = "C:\"
  238.     ELSE
  239.     MakeDrive = MID$(szDir$,1,1) + ":\"    
  240.     END IF
  241.  
  242. END FUNCTION
  243. '**
  244. '** Purpose:
  245. '**     Calculates the amount of Disk Space left over after installation
  246. '** Returns:
  247. '**     Nothing.
  248. '*************************************************************************
  249. SUB RecalcPath STATIC
  250.  
  251.     free& = GetFreeSpaceForDrive(DEST$)
  252.     LEFTOVER& = free& - 5000000
  253.  
  254. END SUB
  255.  
  256.